﻿<?xml version="1.0" encoding="utf-8"?>
<xsd:schema
    targetNamespace="http://metalx.org/i386/Functions/Pci"
    elementFormDefault="qualified"
    xmlns="http://metalx.org/i386/Functions/Pci"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema">

	<xsd:element name="CreateDeviceObject">
		<xsd:annotation>
			<xsd:documentation>
				Creates a new PciDevice object for the specified slot.

				Input:
				AX=Slot

				Output:
				DI=PciDevice
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType/>
	</xsd:element>

	<xsd:element name="GetBaseAddress0">
		<xsd:annotation>
			<xsd:documentation>
				Returns the first base address for the specified slot.

				Input:
				AX=Slot

				Output:
				AX=Address

				Modifies: DX
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType/>
	</xsd:element>

	<xsd:element name="GetBaseAddress1">
		<xsd:annotation>
			<xsd:documentation>
				Returns the second base address for the specified slot.

				Input:
				AX=Slot

				Output:
				AX=Address

				Modifies: DX
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType/>
	</xsd:element>

	<xsd:element name="GetBaseAddress2">
		<xsd:annotation>
			<xsd:documentation>
				Returns the second base address for the specified slot.

				Input:
				AX=Slot

				Output:
				AX=Address

				Modifies: DX
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType/>
	</xsd:element>

	<xsd:element name="GetBaseAddress3">
		<xsd:annotation>
			<xsd:documentation>
				Returns the forth base address for the specified slot.

				Input:
				AX=Slot

				Output:
				AX=Address

				Modifies: DX
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType/>
	</xsd:element>

	<xsd:element name="GetBaseAddress4">
		<xsd:annotation>
			<xsd:documentation>
				Returns the fifth base address for the specified slot.

				Input:
				AX=Slot

				Output:
				AX=Address

				Modifies: DX
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType/>
	</xsd:element>

	<xsd:element name="GetBaseAddress5">
		<xsd:annotation>
			<xsd:documentation>
				Returns the sixth base address for the specified slot.

				Input:
				AX=Slot

				Output:
				AX=Address

				Modifies: DX
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType/>
	</xsd:element>

	<xsd:element name="GetClassCode">
		<xsd:annotation>
			<xsd:documentation>
				Returns the class code, subclass code, programmer interface and revision id for the specified slot.

				Input:
				AX=Slot

				Output:
				AX=ClassCode

				Modifies: DX
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType/>
	</xsd:element>

	<xsd:element name="GetDeviceID">
		<xsd:annotation>
			<xsd:documentation>
				Returns the Device ID and Vendor ID for the specified slot.

				Input:
				AX=Slot

				Output:
				AX=DeviceID

				Modifies: DX
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType/>
	</xsd:element>

	<xsd:element name="GetSubsystemID">
		<xsd:annotation>
			<xsd:documentation>
				Returns the Subsystem ID and Vendor ID for the specified slot.

				Input:
				AX=Slot

				Output:
				AX=SubsystemID

				Modifies: DX
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType/>
	</xsd:element>

	<xsd:element name="GetInterruptLine">
		<xsd:annotation>
			<xsd:documentation>
				Returns the Interrupt Line value for the specified slot.

				Input:
				AX=Slot

				Output:
				AX=InterruptLine

				Modifies: DX
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType/>
	</xsd:element>

	<xsd:element name="GetCommandStatus">
		<xsd:annotation>
			<xsd:documentation>
				Returns the Command and Status values for the specified slot.

				Input:
				AX=Slot

				Output:
				AX=CommandStatus

				Modifies: DX
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType/>
	</xsd:element>
	
	<xsd:element name="SetCommand">
		<xsd:annotation>
			<xsd:documentation>
				Sets the Command and Status values for the specified slot.

				Input:
				AX=Slot
				BX=Value

				Modifies: AX DX
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType/>
	</xsd:element>
</xsd:schema>
